Many applications (i.e., computer programs) provide user interfaces through which a user can interact with the application. The user interfaces may be very sophisticated and provide the user with hundreds of different features. A user who is not very experienced with an application may not know of the existence of certain features or may not know how to use certain features. To assist such users with the user interface, applications typically provide a help system through which a user can request help information describing the various features. The help information for an application is typically stored in a help file. A help file has an entry for each topic of help information that is available. For example, a word processing application that provides a feature to automatically correct misspellings, an “AutoCorrect” feature, may have a topic describing the feature. Each entry may include the title or name of the topic and content that describes the topic in some detail. FIG. 1 is a diagram that illustrates the structure of an example help file. In this example, the help file includes a content file 101 and an index 102. The content file contains the entries of the help file, and the index provides a mapping from various keywords (including phrases) to the related topics in the content file. In this example, the keywords “AutoCorrect” and “Spelling Correction” are mapped to the entry for the “AutoCorrect” topic. A keyword may be mapped to multiple topics. For example, the “AutoCorrect” keyword may be also mapped to a topic explaining how to turn off the “AutoCorrect” feature.
FIGS. 2A and 2B illustrate typical use of a help system. When a user requests help, the help system displays a dialog box 201. The dialog box includes an input field 202 for a user to enter a keyword of interest. In this example, the user has entered the keyword “spelling.” The help system identifies all the keywords in the index of the help file that begin with the word “spelling.” The help system then displays those keywords in a keyword display field 203. When a user selects one of the displayed keywords, the help system identifies the topics that are mapped to be selected keyword using the index and, if more than one topic is identified, displays the titles of those topics to the user. The user can then select a topic of interest. When a topic is selected, the help system retrieves and displays the content for the selected topic as shown in dialog box 204.
Typical help systems also allow users to enter queries or questions, rather than simply selecting keywords that happen to be indexed. When a user submits a query, the help system may search the content file to identify topics that match the user query. (A help file may include a search catalog that the help system searches, rather than searching the entire content file. The search catalog maybe generated from the content file and is used to improve the speed of searching.) The help system then displays the titles of those matching topics to the user so that the user can selectively view the content of the topics that the user thinks may be relevant. FIG. 3 illustrates a dialog box for entry of a user query. Dialog box 301 includes an input field 302 for a user to enter their query. The query may be in the form of a question or may be a phrase or words of interest. In this example, the user entered the question “How do I stop my name from being changed?” This question might be asked, for example, if the user's name is “Juli” and the “AutoCorrect” feature is configured to automatically “correct” that word to “July” on the assumption that the user simply misspelled the month. After a query is entered, the help system identifies the topics that best match, that are most relevant to, the query. Help systems may use various well-known search algorithms for identifying the matching topics. The help system then displays the matching topics in a display field 303. The user can then select one of the displayed topics to view its content.
Unfortunately, many of the help systems often do not locate any topics that the user finds relevant. In the example of FIG. 3, the help system determined that the topics “field names” and “stop words” best match the user query. The help system, however, did not identify the “AutoCorrect” topic as matching because none of the non-noise words (e.g., “stop,” “name,” and “changed”) are contained in the content of the “AutoCorrect” topic. In such a situation, the user may not even be aware of the “AutoCorrect” feature and thus may not be able to formulate a query that will identify that topic. The user is only provided with topics that are not relevant to the user's query and has no effective way to identify the relevant topic.
When help files are developed, the help file developers (e.g., technical writers) spend considerable effort in trying to identify topics, content, and indexes that the users will find helpful. As part of their efforts, developers may talk to various users, review newsgroup postings related to the application, talk to the application programmers, and so on when creating a help file. If a developer knew that users often ask the question of FIG. 3, then the developer might create a new topic relating to changing a user's name or might add keywords, such as “stop name changes,” to the index that maps to the “AutoCorrect” topic. Such ad-hoc identification of topics and keywords is very expensive and does not result in relevant topics being identified for many user queries.
The expense of developing help files increases significantly when the help files need to be localized (e.g., translated from an original language into a local language). Such localization typically involves more than just straightforward translation of the words of the help file. For example, it may be difficult to find keywords in the local language that accurately convey the meaning of keywords in the original language. In particular, a localization may involve extensive rewriting of the content and identification of new keywords.
It would be desirable to have a way to generate help files that would allow a help system to identify topics that users find relevant to their queries. In addition, it would be desirable to have a technique for the localization of help files that would allow for more efficient and accurate localization.